﻿#pragma once
/**
@author 何炜
@date 2010/7/27
@brief .
@details
*/

/*
运行时信息支持
总体来说，不希望滥用Get__Type()功能因为这不是好的 OO 风格。
但是某些情况下使用确实会给开发带来便利。一切以人为本
*/
typedef void* ClassType;

#define EMBED_ID_NUM(id)	\
	virtual const ClassType GetInstanceType() const {return (ClassType)(id);} \
	static const ClassType GetClassType() {return (ClassType)(id);}

#define EMBED_ID__TYPE_INFO_STR(cls)		ClassType((void*)typeid(cls).name())

///将类信息镶入类中（不需要运行时信息RTTI支持）
#define EMBED_ID(cls)		EMBED_ID_NUM(EMBED_ID__TYPE_INFO_STR(cls));